//
//  NSDate+Extension.swift
//  SHWeibo2.0
//
//  Created by 黄礼潮 on 16/2/29.
//  Copyright © 2016年 黄礼潮. All rights reserved.
//

import Foundation
//日期实例化
private let cz_shardFormatter = NSDateFormatter()
//当前日历
private let cz_shardCalendar = NSCalendar.currentCalendar()


extension NSDate{

   class func cz_sinaDate(creat_at: String?) -> NSDate? {
    
        guard let creat_at = creat_at else{
            
            return nil
        }
    
       //转换字符串格式  create_at: Sun Feb 28 16:42:06 +0800 2016
        cz_shardFormatter.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
       //一定要设置区域，如果不设置的话，模拟器能工作，真机无法正常工作
        cz_shardFormatter.locale = NSLocale(localeIdentifier:"en")
    
        return cz_shardFormatter.dateFromString(creat_at)
    }
    
    /** 返回日期格式字符串
    
    刚刚(一分钟内)
    X分钟前(一小时内)
    X小时前(当天)
    昨天 HH:mm(昨天)
    MM-dd HH:mm(一年内)
    yyyy-MM-dd HH:mm(更早期)
    */
    
    var cz_dateDescription: String {
    
        if cz_shardCalendar.isDateInToday(self){
        
            let date1 = Int(NSDate().timeIntervalSinceDate(self))
        
            //将当前时间转换为基本数据类型
            
            if date1 < 60 {
            
              return "刚刚"
            }
            if date1 < 60 * 60 {
            
              return "\(date1 / 60)分钟前"
            }
            
              return "\(date1 / 60 / 60)小时前"
            
        }
            /**
            *  判断是否是昨天
            /** 返回日期格式字符串
            
            刚刚(一分钟内)
            X分钟前(一小时内)
            X小时前(当天)
            昨天 HH:mm(昨天)
            MM-dd HH:mm(一年内)
            yyyy-MM-dd HH:mm(更早期)
            */
            */
            
            var format = " HH:mm"
            
            if cz_shardCalendar.isDateInYesterday(self){
            
                format = "昨天" + format
            }else{
            
                format = "MM-dd" + format
                
                let year = cz_shardCalendar.component(.Year, fromDate: self)
                let thisYear = cz_shardCalendar.component(.Year, fromDate:NSDate())
                
                if  year != thisYear {
                
                format = "yyyy-" + format
                }
            
            }
            //转换日期
            cz_shardFormatter.dateFormat = format
            cz_shardFormatter.locale = NSLocale(localeIdentifier:"en")
           return cz_shardFormatter.stringFromDate(self)
    }
    
}